package com.unione.unione_protocol.door_control

import com.unione.unione_base.util.ByteUtils
import com.unione.unione_base.util.CrcUtil

/**
 *  门控
 */
object UnioneDoorControlProtocol {

    /**
     *  @param doorNo: 门牌编号（0-127）
     *  @param cmd: 开关门指令（1：门控1号开门  2：门控2号开门 3：门控1号关门 4：门控2号关门）
     */
    fun getUnioneDoorControlRequest(doorNo: Int, cmd: Int): ByteArray {
        val byteList = mutableListOf<Byte>()
        byteList.addAll(ByteUtils.to2Bytes(DoorControlConstant.control_sync_code).toList()) // 1 2
        byteList.add(DoorControlConstant.cmd_type_control.toByte()) // 3
        val dataList = mutableListOf<Byte>()
        dataList.add(doorNo.toByte())
        dataList.add(cmd.toByte())
        dataList.add((0x00).toByte())
        dataList.add((0x00).toByte())
        byteList.addAll(dataList)
        byteList.addAll(getCrcByteData(dataList).toList())
        byteList.add(DoorControlConstant.fix_request_end.toByte())
        return byteList.toByteArray()
    }


    /**
     *  crc-16 校验
     */
    private fun getCrcByteData(byteList: List<Byte>): ByteArray {
        return CrcUtil.getCRC16(byteList.toByteArray())
    }


    /***
     *  响应帧
     */
    fun getUnioneDoorControlRsp(data: ByteArray) {


    }


}